iT邦幫忙

0

Day.25做出第一版儀表板(Google 試算表版)

  • 分享至 

  • xImage
  •  

一、今日目標
用 Google 試算表把 Day 20 累積的資料,做成最小可用的儀表板。

  1. 逐小時成功率(折線)
  2. 「資料最不新鮮」Top 10(橫條)
  3. 右上角顯示「資料更新於 …」
    二、資料表結構
    把 Day 20 的每日/每次紀錄放在 raw 工作表,欄位如下:
    timestamp, apiName, status, latencyMs, isFromCache, dataFreshnessSeconds, tooManyRequestsCount, noDataCount, routeId, stopId, updateTime, stopStatus
    時間:timestamp、updateTime 皆為 ISO 8601 含 +08:00
    單位:latencyMs(毫秒)、dataFreshnessSeconds(秒)、其餘為數值或字串(小駝峰)
    三、建立「filtered」工作表(日期範圍)
    新增 filtered,用公式從 raw 依日期範圍篩出資料(假設 dashboard!B2=開始、dashboard!C2=結束):
    =QUERY(
    raw!A:L,
    "select * where Col1 >= datetime '" & TEXT(dashboard!B2,"yyyy-mm-dd") & " 00:00:00'
    and Col1 <= datetime '" & TEXT(dashboard!C2,"yyyy-mm-dd") & " 23:59:59' ",
    1
    )
    先不分日也可以用:=ARRAYFORMULA(raw!A:L)。
    四、建立「dashboard」KPI 區
    在 dashboard 放下列欄位與公式:
    日期範圍:B2(起)、C2(迄)
    成功率(%)(E2)
    =IFERROR(COUNTIF(filtered!C:C,200)/COUNTA(filtered!C:C),0)
    P95 延遲(ms)(E3)
    =IFERROR(PERCENTILE.INC(FILTER(filtered!D:D, filtered!C:C=200),0.95),0)
    ETA 新鮮度 P95(s)(E4)
    =IFERROR(PERCENTILE.INC(filtered!F:F,0.95),0)
    429 次數(E5)
    =IFERROR(COUNTIF(filtered!C:C,429),0)
    右上角時間戳(H2)
    ="資料更新於 "&TEXT(MAX(filtered!A:A),"yyyy-mm-dd""T""hh:nn:ss")&"+08:00"
    建議條件色:成功率(綠≥97%、黃95–97%、紅<95%);P95 延遲(綠<800、黃800–1200、紅>1200);新鮮度 P95(綠≤30、黃30–45、紅>45);429(綠=0、黃1–10、紅>10)。
    五、圖 1:逐小時成功率
    新增 by_hour,A1:D1 標題 hour, requests, successes, successRate,填入:
    hour(A2)
    =ARRAYFORMULA(UNIQUE(HOUR(filtered!A2:A)))
    requests(B2)
    =ARRAYFORMULA(IF(A2:A="",,COUNTIF(HOUR(filtered!A:A),A2:A)))
    successes(C2)
    =ARRAYFORMULA(IF(A2:A="",,COUNTIFS(HOUR(filtered!A:A),A2:A, filtered!C:C,200)))
    successRate(D2)
    =ARRAYFORMULA(IF(B2:B=0,,C2:C/B2:B))
    選取 A1:D → 插入 → 圖表 → 折線圖,X 軸 hour、Y 軸 successRate(設為 %),加 97% 參考線。
    六、圖 2:資料新鮮度最差 Top 10
    新增 worst_freshness,A1:C1 標題 routeId, stopId, freshnessAvgSeconds,A2 放:
    =QUERY(filtered!I:L,
    "select Col1, Col2, avg(Col? )
    where Col? is not null
    group by Col1, Col2
    order by avg(Col? ) desc
    limit 10", 1)
    這裡的 Col? 對應 filtered 中 dataFreshnessSeconds 的實際欄位號。
    不想對欄號:可用樞紐分析表
    七、把元件擺成一頁
    上:四個 KPI(成功率、P95 延遲、新鮮度 P95、429)+ 右上角時間戳
    下左:逐小時成功率(折線)
    下右:新鮮度最差 Top 10(橫條)
    字級清楚、留白足夠、標題明確。
    八、說明
    今天使用 Google 試算表 完成本專題第一版儀表板,資料源自 Day 20 的每日自動記錄。
    儀表板包含:逐小時成功率折線圖、資料新鮮度最差前 10 橫條圖、右上角「資料更新於 …」。
    KPI 與門檻色對應 Day 21 SLO 草案,讀圖方式一致;欄位命名與時間格式(ISO 8601)延續 Day 6/13/17 的規則。

圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言